package com.yuw.collectiondemo;

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class TestDriver_Set {
	public static void main(String[] args) {
		test02();
	}
	
	/**
	 * TreeSet用法
	 */
	private static void test03() {
		// 创建一个set集合对象
		// 多态：父类指代子类
		Set set0 = new TreeSet();

		// 向set集合中添加元素
		set0.add("zhangsan");
		set0.add("lisi");
		set0.add("lisi");
		//set0.add(null);
		set0.add("wangwu");

		// 遍历set集合中的个元素
		System.out.println("\n增强型的for循环遍历：");
		for (Object obj : set0) {
			System.out.println(obj);
		}

		System.out.println("Iterator迭代器遍历");
		// 获取集合的迭代器对象
		Iterator it = set0.iterator();
		// it.hasNext() 判定有没有下一个元素，注意：开始位置是在第一个元素之前；
		while (it.hasNext()) {
			// 使用迭代器的 next方法获取要遍历的元素对象
			Object obj = it.next();
			System.out.println(obj);
		}

		System.out.println("=================");
		if (set0.contains("lisi")) {
			System.out.println("包含李四");
		} else {
			System.out.println("不包含李四");
		}
	}
	
	/**
	 * LinkedHashSet用法
	 */
	private static void test02() {
		// 创建一个set集合对象
		// 多态：父类指代子类
		Set set0 = new LinkedHashSet();

		// 向set集合中添加元素
		set0.add("zhangsan");
		set0.add("lisi");
		set0.add("lisi");
		set0.add(null);
		set0.add("wangwu");

		// 遍历set集合中的个元素
		System.out.println("\n增强型的for循环遍历：");
		for (Object obj : set0) {
			System.out.println(obj);
		}

		System.out.println("Iterator迭代器遍历");
		// 获取集合的迭代器对象
		Iterator it = set0.iterator();
		// it.hasNext() 判定有没有下一个元素，注意：开始位置是在第一个元素之前；
		while (it.hasNext()) {
			// 使用迭代器的 next方法获取要遍历的元素对象
			Object obj = it.next();
			System.out.println(obj);
		}

		System.out.println("=================");
		if (set0.contains("lisi")) {
			System.out.println("包含李四");
		} else {
			System.out.println("不包含李四");
		}
	}
	/**
	 * HashSet用法
	 */
	private static void test01() {
		// 创建一个set集合对象
		// 多态：父类指代子类
		Set set0 = new HashSet();

		// 向set集合中添加元素
		set0.add("zhangsan");
		set0.add("lisi");
		set0.add("lisi");
		// set0.add(null);
		set0.add("wangwu");

		// 遍历set集合中的个元素
		System.out.println("\n增强型的for循环遍历：");
		for (Object obj : set0) {
			System.out.println(obj);
		}

		System.out.println("Iterator迭代器遍历");
		// 获取集合的迭代器对象
		Iterator it = set0.iterator();
		// it.hasNext() 判定有没有下一个元素，注意：开始位置是在第一个元素之前；
		while (it.hasNext()) {
			// 使用迭代器的 next方法获取要遍历的元素对象
			Object obj = it.next();
			System.out.println(obj);
		}

		System.out.println("=================");
		if (set0.contains("lisi")) {
			System.out.println("包含李四");
		} else {
			System.out.println("不包含李四");
		}
	}
}
